Requests and compute resources

ABSTRACT

In an example, a collection of compute resources corresponding to a class of devices is identified with a request and a synthesis routine is performed via a number of destinations corresponding to the class of devices. In an example, a type of compute resource to use with an operation of a request is determined, a device with the type of compute resource determined for the operation of the request is identified; the identified device performs the operation of the request within a bounds of a policy, and a result of the operation is communicated to a remote storage location.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/764,318, filed on Oct. 4, 2018, which is a 371(c) National PhaseApplication of International Application No. PCT/2015/059347, filed Nov.5, 2015, both of which are herein incorporated by reference in theirentireties.

BACKGROUND

Compute devices may collect and store information as well as communicateinformation to other compute devices. Compute devices have resources toperform operations on information and provide results, such as bycommunicating the results to a connected device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1 and 2 are block diagrams depicting example resource systems.

FIG. 3 depicts an example environment in which various resource systemsmay be implemented.

FIG. 4 depicts example modules used to implement example resourcesystems.

FIGS. 5 and 6 are flow diagrams depicting example methods for providingaccess to a result of a synthesis routine.

DETAILED DESCRIPTION

In the following description and figures, some example implementationsof apparatus, systems, and/or methods for providing access to a resultof a synthesis routine are described. Devices are becoming increasinglyconnected. The “Internet of Things” (IoT) allows cloud-based services tointeract with devices in various locations and with variouscapabilities. IoT devices may be minimalistic in nature, withprocessing, storage, and networking capabilities at a restrictivecapacity to enable smaller form factors, increase mobility, and/orreduce power consumption and/or cost. The benefit of IoT devices mayincrease when the devices are able to collaborate readings to adapt to adifferent or related purpose and produce analysis on sensor readings,such as forward projections.

Various examples described below relate to enabling a framework foranalysis of sensor data of an IoT device or multiple IoT devices. Forexample, a control panel on a home printer may offer access to analysisoperations on data retrieved from a smart watch or a security camera.The architecture and operations described herein enables providingaccess to a result of a synthesis routine. The architecture andoperations described herein may allow for performing the synthesisoperations on data across a plurality of devices and allow for creatinga personalized synthesis routine based on a specified data type (e.g., acustomized data type). A system may host compute resources (such asprocessing, storage, and network resources) that perform the synthesisroutines on data collected from multiple IoT devices and sensors, andthus, allow an access point to perform collective analysis operations.Furthermore, computing abilities of the IoT device may, for example,provide further computing functionality beyond what the IoT device coulddo on its own by utilizing a resource group of data sourced frommultiple sensors. For example, a wrist wearable IoT device that tracksdaily exercise may provide data to a data pool and allow a thermostat toaccess a synthesis routine to, based on the data pool, predict the timeof day that exercise routine may be completed and, accordingly, set atemperature of an environment (e.g., a room) to a desired level.

As discussed further herein, the resource system described enablesoperations of synthesis routines on a resource group. As used herein, aresource group represents a pool of resources (e.g., stored data) thatcan be made accessible to a synthesis operation. For example, theresource group may be data stored on a distributed collection ofresources near a device hosting the synthesis operation (e.g., local tothe network where the host device is located). For another example, aresource group may include historical data stored on a secured publiccloud, such as marking local sensor data as satisfying a duration thatwhen expires causes a transfer to a remote storage location andmaintaining a profile used to identify and/or characterize the remotelystored historical data. The access to analysis capabilities andresources, for example, may be provided to IoT devices based onagreements for use (e.g., lease local computing resources) and access tothe synthesis routines and/or resources may be restricted based on theaccess terms of the agreements as well as proximity to the devicehosting the local compute resources.

The terms “include,” “have,” and variations thereof, as used herein,mean the same as the term “comprise” or appropriate variation thereof,Furthermore, the term “based on,” as used herein, means “based at leastin part on.” Thus, a feature that is described as based on some stimulusmay be based only on the stimulus or a combination of stimuli includingthe stimulus. Furthermore, the term “maintain” (and variations thereof)as used herein means “to create, delete, add, remove, access, acquire,update, and/or modify.”

FIGS. 1 and 2 are block diagrams depicting example resource systems 100and 200. Referring to FIG. 1, the example resource system 100 of FIG. 1generally includes a resource group 102, an authorization engine 104, aninterface engine 106, and an analysis engine 110. In general, theinterface engine 106 may provide access to a synthesis routine 102performable via the analysis engine 110 based on authorization from theauthorization engine 104. For example, the engines 104, 106, and 110 maybe part of a wireless router that manages access to synthesis routines,such as synthesis routine 102, and local compute resources byauthorizing and providing access to devices connected to the wirelessrouter.

As used herein, a synthesis routine represents an analysis operationperformable on a resource. For example, an aggregation routine may beperformed on sensor data from a temperature sensor and a chemicalsensor. In that example, the data from the temperature sensor and thechemical sensor may be kept on a local compute resource near a kitchenfrom which the readings are being taken. Example synthesis routinesinclude joining multiple databases, aggregation of data from multiplesources, combining data from multiple data streams, concatenation ofmultiple data items, compression of multiple data items, generation of apredictive formula based on regression schemes over multiple sensingdata streams that are numerical in nature, generation of an eventclassifier by combining multiple data streams that are nominal innature, generation of a group event into clusters, and the like (or acombination thereof). Other example synthesis routines may includeoperations customized or otherwise specific to a particular data type.Example synthesis routines may involve analysis techniques, such asregression schemes, Bayesian classifiers (such as Naive Bayesclassifiers), support vector machines, artificial neural networks, deeplearning schemes, clustering methods (such as K-means clusteringmethods), and the like (or a combination thereof).

A local compute resource represents any allocateable resource usable toassist performance of an operation and is within a proximity thresholdof a compute device (e.g., local). The proximity threshold may define aboundary for a local environment. As used herein, a local environment isthe environment where the host device is located and/or network topologyassociated with the host device, and a host device, as used herein,refers to a compute device providing the local compute resource. Theproximity threshold may be within a particular compute device (such as ahost device), within a distance from a particular compute device, orwithin a boundary defined with reference to a particular compute device,such as a building housing a wireless access point or within a networkboundary of a network coupled to a network security device. Exampleproximity thresholds include a number of feet from a compute device,within transmittable range of an antenna from a compute device, within ahouse, within an office building, within an area distinguishable by afloor plan, and within the same logical computing network.

Example compute resources that are usable to assist performance of anoperation include processor resources, memory resources, networkingresources, power resources, input output (10) resources, authenticationresources, and virtual resources. Example processor resources includeallocation of time to a central processing unit (CPU) or dedicatingaccess of the CPU to a particular session of requests. Example memoryresources include storage devices (such as persistent storage deviceincluding disk drive or flash memory), allocation of a portion of acomputer-readable medium to a device, avocation of time to utilize acomputer-readable medium, and allocation of a particular amount ofstorage size to a session of requests. Example networking resourcesincluding allocating bandwidth, use of a network interface device, orother allocation of a connection to a session of requests. Example powerresource include allocating a power unit to charge a device, which mayinclude allocating an amount of time and/or an amount of charge to beprovided to a device. Example RD resources include allocation of an 10device (such as a memory card reader, a graphical control panel),allocation of a functionality of an 10 device to a session of requests,allocation of an interface or port (such as a USB interface or a displayport providing audio-visual output), and allocation of data of an 10device (such as scan data from a multi-function printer scan device orprinted output produced by print job data). Example authenticationresources include allocation of a device that perform securityoperations and/or analysis (such as a fingerprint reader) and allocationof time or a result of using a functionality of a security device (suchas time interval for using a report provided by a biometric sensor),Example virtual resources include allocation of data (such as accesslogs or historical sensor logs of a device), allocations of datastructures (such as databases or nodes of databases), applicationfunctionalities, and/or any virtual instantiations of the abovementioned compute resources to a session of requests.

The authorization engine 104 represents any circuitry or combination ofcircuitry and executable instructions to authorize an analysis request.The authorization engine 104 may determine an authorization level of ananalysis request based on a proximity threshold and/or access termsassociated with the source or destination of the analysis request. Forexample, the authorization engine 104 may represent a combination ofcircuitry and executable instructions that determines an authorizationlevel of an analysis request based on whether the destination and/orsource of the analysis request is within a proximity threshold of thehost device that includes local compute resources containing data usedby a synthesis routine of the analysis request. As used herein, ananalysis request is a communication regarding execution of a synthesisroutine, such as proposing to perform the synthesis routine, modify asynthesis routine, and the like. The analysis request may causeoperations associated with performing analysis on data, such asidentification of parameters of the request, identification of thesynthesis routine to perform, identification of the data to use with thesynthesis routine, performing the synthesis routine, and delivery of theresult of the synthesis routine to a destination. An analysis requestmay comprise a synthesis routine, Example analysis requests includeaccess requests to access a synthesis routine or access a result of asynthesis routine, allocation requests that assign a compute resource toa synthesis operation, deallocation requests to remove assignments of adata type to a synthesis routine, and modification requests to modifythe association of a data type to a synthesis routine or modification ofthe operations of the synthesis routine. For example, an analysisrequest may be a request to execute a synthesis routine that accesses astorage location to store data (e.g., a perform routine request) and/orto manage synthesis routine data (e.g., an add routine request). Foranother example, an analysis request may be a request to allocate timeon a CPU for a synthesis routine.

The authorization engine 104 may represent circuitry or a combination ofcircuitry and executable instructions to identify a first location of asource of the analysis request and compare the first location to aproximity threshold based on a second location of the compute devicehosting a local compute resource of the resource group used to performthe synthesis routine of the analysis request, In this manner, theauthorization engine 104 may determine whether to authorize an analysisrequest and/or the level of authorization of the analysis request basedon the proximity threshold.

As used herein, a source represents an application or a device thatgenerates the analysis request. For example, a mobile phone applicationor a printer control panel may be activated by a user to request accessto results of a synthesis routine. For another example, a source may bean IoT sensor that provides data at certain time intervals or whenparticular conditions (e.g., a threshold and/or a state) are satisfied,such as a motion detection device that sends sensor data in response toa change in a captured image, and requests a forward projection analysison the provided data. A destination, as used herein, represents anapplication or a device that receives the result of the synthesisoperation.

The interface engine 106 represents any circuitry or combination ofcircuitry and executable instructions to assign a data property to ananalysis request. For example, the interface engine 106 may be acombination of circuitry and executable instructions that when executedby the circuitry cause the circuitry to identify a data propertyassociated with the type of analysis requested by the analysis request,and assign the data property to the analysis request (e.g., associate adata property with the synthesis routine of the analysis request) inresponse to a determination that the analysis request (e.g., the sourceof the analysis request) is authorized to access the local computeresource.

The interface engine 106 may provide information to access the synthesisroutines and/or results of the synthesis routines. For example, theinterface engine 106 may represent circuity or a combination ofcircuitry to facilitate access to the synthesis routine and the localcompute resources with data useable with the synthesis routine. Exampleoperations to facilitate access to the synthesis routine includespublishing a list of synthesis routines, publishing resources (such asstorage sizes, processor utilizations, services, data types, andfunctionalities) and providing interfaces to access the results of thesynthesis routine in a manner associated with the authorization levelidentified by the authorization engine 104, For example, the interfaceengine 106 may publish (e.g., broadcast) a list of synthesis routineslocal compute resources to devices within a range of the system, such asa proximity threshold discussed herein. For another example, theinterface engine 106 may provide the virtual infrastructure to a sourceto perform a synthesis routine using a host device. For yet anotherexample, the interface engine 106 may publish a data type compatiblewith (e.g., offerable from or maintainable by) the synthesis routine102, such as broadcast a list of data types compatible with a synthesisroutine to a non-integrated IoT device provider.

The interface engine 106 may provide an interface to access thesynthesis routine to devices within a proximity range of the system as aplatform as a service (PAAS) infrastructure, for example. In thatexample, the interface may be provided by the interface engine 106 basedon an authorization level of the destination being sent the interfaceinformation. An authorization level, as used herein, represents a degreeof permissions to perform operations associated with the local computeresource. For example, a first degree of permission may allow a sourceto access a number of synthesis routines, a second degree of permissionmay allow a source to access a greater number of synthesis routines, athird degree of permission may allow a source to access anonymized data,and a fourth degree of permission may deny any attempt to access data onthe local compute resource. Permissions may be represented by levels,degrees, categories, or other identifiers that represent bounds of apolicy, such as a security policy or a management policy. Policies maybe based on various attributes of use of the local resource, such astime, utilization, percentage, or otherwise defined by access terms inan agreement between a source (and/or destination) and the system 100.

An authorization level determined by the authorization engine 104 may bedetermined based on a data property, such as a data property associatedwith a source, destination, a synthesis routine, a data type, a localcompute resource, or a combination thereof. As used herein, a dataproperty represents a classification representable by an identifier,such as a value, a number, a character, a string, a label, etc. Exampledata properties assignable to a synthesis routine, to local computeresources, and/or to data associated with local compute resources and/orsynthesis routines include a security property and/or a managementproperty. As used herein, a security property represents an attributeidentifiable with a synthesis routine and/or a local compute resourcethat represents a security condition. For example, a security propertymay specify the class of devices allowed to access the local computeresource and/or synthesis routine (e.g., access data on a local computeresource that is categorized by the security property) and/or a class ofrequests allowed to access to the local compute resource (e.g., a classof synthesis routines that access a particular type of data). As usedherein, a management property represents an attribute identifiable witha synthesis routine and/or a local compute resource that represents amanagement condition. For example, a management property may defineclasses of data, specify the class of data associated with a sensor,specify the class of data associated with an operation performable on aset of data, and/or other organizational classification of data,synthesis routine, and/or local compute resource, Example dataproperties include properties of data related to size, attributes,statistical variations (mean, standard deviations, etc.), time covered,and the like. For example, a profile may be associated with a data set,where the profile describes the data using data properties (e.g., theprofile is a data structure including a variable for a descriptive dataproperty).

The interface engine 106 may represent circuitry or a combination ofcircuitry and executable instructions that when executed cause thecircuitry to provide an interface that allows a synthesis routine to besubmitted to the system 100 and identify the operation conditions forthe synthesis routine. In this manner, the system 100 may utilize theinterface engine 106 to facilitate creation and management of synthesisroutines to use with sensor data, in particular sensor data within alocal environment. As used herein, operation conditions represent theparameters used to perform a synthesis routine. Example operationconditions include a data type used by the synthesis routine and ananonymity threshold condition that defines a limit to when the synthesisroutine is allowed to use raw data from the resource group (e.g., aproximity threshold, a class of analysis, a result size, a dataproperty, and the like). The operation conditions may be described in adata structure such as a synthesis routine data structure including afirst variable to describe a data type and a second variable to describean anonymity threshold condition.

The analysis engine 110 represents any circuitry or combination ofcircuitry and executable instructions to execute a synthesis routinebased on an analysis request. For example, the analysis request mayinclude parameters to perform a synthesis routine, such as the datatypes to use, the boundaries for amount of data to use, and the class ofresult to provide from completing the synthesis routine. For anotherexample, the analysis engine 110 may execute a synthesis routine basedon a comparison of the class of synthesis routine and an access termassociated with an authorization level of the analysis request. Forexample, the analysis engine 110 may be a combination of circuitry andexecutable instructions that when executed by the circuitry cause thecircuitry to select a synthesis routine based on the analysis request,identify data stored in a resource group based on the synthesis routine,and cause the synthesis routine to perform using raw data in theresource group based on a data property in response to a determinationthat the analysis request is authorized to access the resource group.

The analysis engine 110 may represent circuitry or a combination ofcircuitry and executable instructions that when executed cause thecircuitry to identify a data type within a resource group. For example,the analysis engine 110 may represent a combination of circuitry andexecutable instructions that identifies a data property of the analysisrequest, compare the data property of a data type within a local computeresource of a resource group, and retrieve the data from the localcompute resource based on the comparison of the data property of theanalysis request and the data on the local compute resource. Theanalysis engine 100 may utilize data associated with separate resourcegroups or distributed across devices or local compute resources. Forexample, the analysis engine 110 may identify a first group of data froma first sensor and a second group of data from a second sensor (such asby identifying data types associated with a data property anddiscovering those data types in the first group of data and the secondgroup of data) and performing a forward projection based on the firstgroup of data and the second group of data. A forward projection, asused herein, represents any operation performed to determine a futureevent or future data. For example, the operation conditions of a forwardprojection synthesis routine may identify data by a timestamp dataproperty and extrapolate from a pattern of historical sensor data withina time interval to identify a future period associated with the timeinterval to predict how the sensor data may be result during the futureperiod.

For another example, an ink consumption sensor, a digital camera, and anemailing tool may be within a local processing environment. In thatexample, an ink consumption sensor in an at-home printer is an IoTdevice under management that reports remaining inks available in theprinter; a digital camera (e.g., a mobile device camera) is another IoTdevice under management that uploads photos to the management system;and an e-mailing tool is another IoT device under management thatuploads documents to the system for management. Further in that example,a synthesis routine may examine the historical records of the size ofthe uploaded photos, uploaded documents, and the ink consumptions toautomatically draw correlation and save the correlation in an internalstorage resource of, for instance, the printer, where the printerprovides services, such as photo printing and document printing, with atunable weight factor using the correlation. Further, an ink consumptionpredictive formula can be automatically generated by the synthesisroutine. An example of such predictive formula may be, based onhistorical observation of photo uploading events and e-mail uploadevents, generate a likelihood assessment that the printer will be out ofprinting fluid. When this likelihood crosses a threshold, for example,80% consumption, a communication (e.g., a message or signal) is sent toan ink subscription service and/or to a user through the printer controlpanel

For yet another example, a sensor-enabled refrigerator may report acurrent snapshot of the food and produce inside as well as the rate ofconsumption based on a historical record. This data (e.g., thehistorical record) may be linked to (or otherwise associated with)another IoT device under management that monitors the daily activity andenergy consumption. A synthesis analysis based on these two data streamsmay serve the user to predict the health status of the user at a futuretime, and generate recommendation for modulating the user behavior forbetter health.

The analysis engine 110 may represent circuity or a combination ofcircuity and executable instructions that when executed cause thecircuitry to maintain performance of synthesis routines. For example,the analysis engine 110 may be a combination of circuitry and executableinstructions that when executed cause the circuitry to monitor analysisrequests and prioritize demand of the synthesis routines based on a dataproperty and/or access term. Prioritization may be based on a level ofdemand as well as terms for access of each request. For example, theanalysis engine 110 may prioritize access requests to a synthesisroutine based on a demand level identified by monitored analysisrequests and access terms associated with the monitored analysisrequests. For another example, prioritization could be based on paymenttype (such as pricing classes or auction) or source type (e.g., theclass of the source could be preferred or basic).

The analysis engine 110 may manage the analysis requests based on accessterms. As used herein, access terms represent conditions and limitationsfor use as set by an agreement between entities, such as a host devicethat hosts a synthesis routine and a source of an analysis request. Forexample, the analysis engine 110 may establish access terms forexecuting an analysis request made by an IoT device and establish aresource stack of a platform as a service (PAAS) infrastructure modelbased on the access terms. The analysis engine 110 may facilitateprovisioning of the results of a synthesis routine based on the level ofauthorization and/or the access terms. For example, the analysis engine110 may select a synthesis routine based on whether the source is withinthe proximity threshold and provide an anonymous result to a destination(such as a cloud-based service) in response to performance of thesynthesis routine with non-anonymized data when the destination isoutside the proximity threshold in accordance with the access terms. Inanother example, the analysis engine 110 may execute a synthesis routineto perform on data from multiple sensors and may send an anonymizedresult to a cloud-based storage location. When the remote device thatrequests the analysis results satisfies the appropriate authorizationlevel (e.g., the remote device is within the proximity threshold and theaccess terms indicate the remote device is authorized to receive theresult of the synthesis routine), personal identifiable information or aresult provided based on personal identifiable information may beprovided to the remote device in response to execution of the synthesisoperation. Personal identifiable information (or a personal identifiableresult discussed herein) includes information that is raw or otherwisenot anonymized.

In some examples, functionalities described herein in relation to any ofFIGS. 1-3 may be provided in combination with functionalities describedherein in relation to any of FIGS. 4-6.

FIG. 2 depicts the example system 200 may comprise a memory resource 220operatively coupled to a processor resource 222, Referring to FIG. 2,the memory resource 220 may contain a set of instructions that areexecutable by the processor resource 222. The set of instructions areoperable to cause the processor resource 222 to perform operations ofthe system 200 when the set of instructions are executed by theprocessor resource 222. The set of instructions stored on the memoryresource 220 may be represented as an authorization module 204, aninterface module 206, and an analysis module 210. The authorizationmodule 204, the interface module 206, and the analysis module 210represent program instructions that when executed function as theauthorization engine 104, the interface engine 106, and the analysisengine 110 of FIG. 1, respectively. The processor resource 222 may carryout a set of instructions to execute the modules 204, 206, 210, and/orany other appropriate operations among and/or associated with themodules of the system 200. For example, the processor resource 222 maycarry out a set of instructions to publish a list of synthesis routinesof a compute device and a list of data types compatible with thesynthesis routines to a device within a proximity range of the computedevice (e.g., a list of synthesis routines may be publishable bybroadcasting the list of synthesis routines to devices within theproximity range of the compute device, such as a compute device hostinga local compute resource of the resource group used by the synthesisroutine). For another example, the processor resource 222 may carry outa set of instructions to, in response to an analysis request, select afirst synthesis routine of a list of synthesis routines based on inputfrom a source of the analysis request (e.g., parameters of the analysisrequest), identify data of a local compute resource with a data propertyassociated with the first synthesis routine, and performing the firstsynthesis routine using raw data from the local compute resource inresponse to a determination that a destination of the analysis requestis authorized to receive a result with personal identifiableinformation. For yet another example, the processor resource 222 maycarry out a set of instructions to enable receipt of a synthesis routinedata structure that defines a second synthesis routine, add the secondsynthesis routine to the list of synthesis routines, establish accessterms to a device (e.g., a device hosting the synthesis routine and/orlocal compute resources for the synthesis routine), establish a resourcestack of a PAAS infrastructure model based on the access terms, provideaccess to the list of synthesis routines via the resource stack,prioritize analysis requests based on a demand level identified bymonitored analysis requests and access terms associated with themonitored analysis requests, and send a result with anonymizedinformation to a remote memory location (e.g., a cloud-based location)in accordance with the access terms.

Although these particular modules and various other modules areillustrated and discussed in relation to FIG. 2 and other exampleimplementations, other combinations or sub-combinations of modules maybe included within other implementations. Said differently, although themodules illustrated in FIG. 2 and discussed in other exampleimplementations perform specific functionalities in the examplesdiscussed herein, these and other functionalities may be accomplished,implemented, or realized at different modules or at combinations ofmodules. For example, two or more modules illustrated and/or discussedas separate may be combined into a module that performs thefunctionalities discussed in relation to the two modules. As anotherexample, functionalities performed at one module as discussed inrelation to these examples may be performed at a different module ordifferent modules. FIG. 4 depicts yet another example of howfunctionality may be organized into modules,

A processor resource, such as processor resource 222, is any appropriatecircuitry capable of processing (e.g., computing) instructions, such asone or multiple processing elements capable of retrieving instructionsfrom a memory resource, such as memory resource 220, and executing thoseinstructions. For example, the processor resource 222 may be a CPU thatenables providing access to a result of a synthesis routine by fetching,decoding, and executing modules 204, 206, and 210. Example processorresources include at least one CPU, a semiconductor-basedmicroprocessor, a programmable logic device (PLD), and the like. ExamplePLDs include an application specific integrated circuit (ASIC), afield-programmable gate array (FPGA), a programmable array logic (PAL),a complex programmable logic device (CPLD), and an erasable programmablelogic device (EPLD). The processor resource 222 may include multipleprocessing elements that are integrated in a single device ordistributed across devices. The processor resource may process theinstructions serially, concurrently, or in partial concurrence.

A memory resource, such as memory resource 220, represents a medium tostore data utilized and/or produced by the system 200. The medium is anynon-transitory medium or combination of non-transitory media able toelectronically store data, such as modules of the system 200 and/or dataused by the system 200. For example, the medium may be a storage medium,which is distinct from a transitory transmission medium, such as asignal. The medium may be machine-readable, such as computer-readable.The medium may be an electronic, magnetic, optical, or other physicalstorage device that is capable of containing (i.e., storing) executableinstructions. The memory resource 220 may be said to store programinstructions that when executed by the processor resource 222 cause theprocessor resource 222 to implement functionality of the system 200 ofFIG. 2. The memory resource 220 may be integrated in the same device asthe processor resource 222 or it may be separate but accessible to thatdevice and the processor resource 222. A memory resource may bedistributed across devices.

In the discussion herein, the engines 104, 106, and 110 of FIG. 1 andthe modules 204, 206, and 210 of FIG. 2 have been described as circuitryor a combination of circuitry and executable instructions. Suchcomponents may be implemented in a number of fashions. Looking at FIG.2, the executable instructions may be processor-executable instructions,such as program instructions, stored on the memory resource 220, whichis a tangible, non-transitory computer-readable storage medium, and thecircuitry may be electronic circuitry, such as processor resource 222,for executing those instructions. The instructions residing on thememory resource 220 may comprise any set of instructions to be executeddirectly (such as machine code) or indirectly (such as a script) by theprocessor resource 222.

In some examples, the system 200 may include the executable instructionsmay be part of an installation package that when installed may beexecuted by the processor resource 222 to perform operations of thesystem 200, such as methods described with regards to FIGS. 4-6. In thatexample, the memory resource 220 may be a portable medium such as acompact disc, a digital video disc, a flash drive, or memory maintainedby a computer device, such as a server, from which the installationpackage may be downloaded and installed. In another example, theexecutable instructions may be part of an application or applicationsalready installed. The memory resource 220 may be a non-volatile memoryresource such as read only memory (ROM), a volatile memory resource suchas random access memory (RAM), a storage device, or a combinationthereof. Example forms of a memory resource 220 include static RAM(SRAM), dynamic RAM (DRAM), electrically erasable programmable ROM(EEPROM), flash memory, or the like, The memory resource 220 may includeintegrated memory such as a hard drive (HD), a solid state drive (SSD),or an optical drive.

FIG. 3 depicts example environments in which various example resourcesystems may be implemented. The example environment 390 is shown toinclude an example resource system 300 for providing access to localcompute resources. The system 300 (described herein with respect toFIGS. 1 and 2) may represent generally any circuitry or combination ofcircuitry and executable instructions to manage access to local computeresources. The system 300 may include an authorization engine 304, aninterface engine 306, and an analysis engine 310 that are the same asthe authorization engine 104, the interface engine 106, and the analysisengine 110 of FIG. 1, respectively, and the associated descriptions arenot repeated for brevity. The engines 304, 306, and 310 may beintegrated into a compute device, such as compute devices 330-340discussed further below. The engines 304, 306, and 310 may be integratedvia circuitry or as installed instructions into a memory resource of thecompute device.

The resource system 300 of FIG. 3 is shown comprising resourcecomponents, such as a network interface 312, a processor resource 314, acontrol panel 316. an input device 318, and a data store 302. Theresource components may be provided as usable local compute resourcesand/or may be used by the system 300 to perform operations associatedwith providing access to a result of a synthesis operation. For example,the processor resource 314 may be allocated to devices 330 and 332 toperform computations related to location tracking, the result may bestored in data store 302, and information to retrieve the result may besent to an application 326 requesting the result of the synthesisrequest. For another example, the control panel 316 may be requested byan IoT thermostat to be used as an external display to provide a userinterface for the IoT thermostat, where such a user interface may allowboth a user to send commands to the IoT thermostat and for the IoTthermostat to alert a user of the occurrence of an event and/or actionrecommendation. For yet another example, the network interface 312 maybe used to connect to a compute device, such as compute devices 330-340,and bridge a capability from a first compute device to a second computedevice via the resource system 300.

The data store 302 is a memory resource as discussed herein. The datastore 302 may maintain a list of synthesis routines (e.g., a listincluding synthesis routine 342) and a “pool” of raw sensor data (shownas raw data set 308 in FIG. 3) from sensors within proximity thresholdof the resource system 300. For example, sensors, such as sensorsincluded with compute devices 330-340, may be connected and authorizedto store raw sensor data in data store 302 based on the sensorsproximity to the resource system 300. The data store 302 may containinformation utilized by the engines 104, 106, and 110 and/or localcompute resources, such as resource components 312-318.

The resource system 300 may include a control panel 316 and an inputdevice 318. The control panel 316 provides access to the data on thelocal compute resources of the resource system 300 (which may be, forexample, part of a resource group used by the synthesis routine 342).The control panel 316 may provide access to a result of a synthesisroutine by selecting input associated with the synthesis routine (e.g.,select the synthesis routine in a displayed list of routines) and, inresponse to the selection, display the result on the control panel 316.The input device 318 converts information (e.g., physical informationstored on paper media) into digital information stored on a localcompute resource of the resource system 300 in a format of a data typeused by the synthesis routine 342. The control panel 316 and inputdevice 318 may offer a way to manually enter data into and/or retrievedata from the data store 302, such as through assistance of anapplication. For example, the input device 318 may be a scanner to scana list of items for a recipe or a receipt, that when added to the poolof raw sensor data may allow a refrigerator 334 to update a list ofcontents in the refrigerator 334.

The example environment 390 may include compute devices, such as IoTdevices 330-340. The IoT devices represent generally any compute devicesto communicate a network request and receive and/or process thecorresponding responses. For example, a browser application may beinstalled on the user device 338 to receive the network packet from theresource system 300 and utilize the payload of the packet to display anelement of a page via the browser application. In general, an IoT devicerefers to a physical object embedded with electronics, software,sensors, and/or connectivity (e.g., network connectivity ordevice-to-device connectivity) that enables the object to collect andexchange data. Example IoT devices include stationary devices (such as aconnected thermostat 330, a refrigerator 334. a printer 336, etc.) andmobile devices (such as a notebook computer 338, a cell phone 340, awatch 332, etc.), An IoT device may include a device with a singularpurpose, such as a temperature sensor, a motion detector, a door switch,etc. or mufti-purpose devices such as printers, wireless access points,or thermostats. An IoT device with a singular function may, by utilizingthe example architecture and/or example methods of operations describedherein, leverage the more complex device nearby that may have more localcompute resources in comparison to the resources provided on thesingular purpose device.

The compute devices may be located on separate networks or part of thesame network. The proximity threshold may be determined based on thenetwork of compute devices. Data and capabilities from the computedevices and/or the resource system 300 may be accessed by and/orprovided to a cloud-based service, such as a cloud-based service offeredon network 320. The example environment 390 may include any appropriatenumber of networks 320 and any number of the networks 320 may include acloud compute environment. A cloud compute environment may include avirtual shared pool of compute resources. For example, networks 320 maybe distributed networks comprising virtual computing resources. Anyappropriate combination of the system 300 and compute devices may be avirtual instance of a resource of a virtual shared pool of resources.The engines and/or modules of the system 300 herein may reside and/orexecute “on the cloud” (e.g., reside and/or execute on a virtual sharedpool of resources). The data provided to the cloud-based service may beanonymized data (shown as anonymous data set 324 stored on a data store322 of the cloud-based service).

An application 326 may request data and/or an analysis service from thecompute devices and may be offered access to the anonymous data set 324.The application 326 may request access to the raw data set 308, and maybe provided requested data from the raw data set 308 when authorized bythe authorization engine 304. For example, if the application 326 isbeing executed on a watch compute device 332 and the watch computedevice 332 has a confirmed location within the proximity threshold (asidentified by the authorization engine 304), then the interface engine306 may provide the interface to access a result of performing thesynthesis routine 342 on the raw data set 308 on the local computeresource (e.g., the data store 302) as determined by the access termsassociated with the watch compute device 322 (as identified by theanalysis engine 310).

A link 328 generally represents one or a combination of a cable,wireless connection, fiber optic connection, or remote connections via atelecommunications link, an infrared link, a radio frequency link, orany other connectors of systems that provide electronic communication.The link 328 may include, at least in part, intranet, the Internet, or acombination of both. The link 328 may also include intermediate proxies,routers, switches, load balancers, and the like.

Referring to FIGS. 1-3, the engines 104, 106, and 110 of FIG. 1 and/orthe modules 204, 206, and 210 of FIG. 2 may be integrated into a singledevice, such as a compute device comprising the resource components ofthe resource system 300, or distributed across devices, such as devices330-340. The engine and/or modules may complete or assist completion ofoperations performed in describing another engine and/or module. Forexample, the analysis engine 310 of FIG. 3 may request, complete, orperform the methods or operations described with the analysis engine 110of FIG. 1 as well as the authorization engine 104 and the interfaceengine 106 of FIG. 1. Thus, although the various engines and modules areshown as separate engines in FIGS. 1 and 2, in other implementations,the functionality of multiple engines and/or modules may be implementedas a single engine and/or module or divided in a variety of enginesand/or modules. In some example, the engines of the system 300 mayperform example methods described in connection with FIGS. 4-6.

FIG. 4 depicts example modules used to implement example resourcesystems. Referring to FIG. 4, the example modules of FIG. 4 generallyinclude executable instructions to operate an authorization engine 404,an interface engine 406, and an analysis engine 410 that are similar tothe authorization engine 104, the interface engine 106, and the analysisengine 110 of FIG. 1, and their respective descriptions are not repeatedin their entirety. The example engines and modules of FIG. 4 may beimplemented on a compute device, such as an office server, a homewireless router, or a printer.

Services may be offered by the system via the interface engine 406. Theinterface engine 406 may include program instructions, such as apublisher module 440 and a connection module 442, to facilitate offeringanalysis services to a device within the proximity threshold. Forexample, the interface engine 406 may publish a list 406 of synthesisroutines, local compute resources available, data types, and/orinterface information 462 to devices within a proximity threshold of thehost compute device. The publisher module 440 represents programinstructions that when executed by a processor resource cause theprocessor resource to publish information (e.g., the list 460 ofroutines, data types maintained on a local compute resource, interfaceinformation 462, information to access a PAAS container, etc.), such as,for example, by sending a broadcasted message to devices within a rangeof an antenna coupled to the host device. The connection module 442represents program instructions that when executed by a processorresource cause the processor resource to provide interface information462 to a device that requests access to a synthesis routine, such as ananalysis service published via the publisher module 440. The interfaceinformation 462 may be a uniform resource locator (URL), infrastructurelocation, a connection method, a connection confirmation, or any otherappropriate information to facilitate interfacing a host device with adestination, such as an IoT device or a cloud-based service application.

Requests to access local compute resources may be received by theauthorization engine 404 of the system. For example, an add routinerequest 464 (to add a synthesis routine to the list 460 of availablesynthesis routines) and/or a perform routine request 466 (to causeexecution of a synthesis routine) may be received by the authorizationengine 404. The authorization engine 404 may include programinstructions, such as a source module 444 and a security module 446, tofacilitate determining an authorization level of an analysis request(e.g., the authorization level of a source of an add routine request ora destination of a perform routine request 466) and/or assigning a dataproperty to the analysis request. The source module 444 representsprogram instructions that when executed by a processor resource causethe processor resource to identify the source of the analysis request.The security module 446 represents program instructions that whenexecuted by a processor resource cause the processor resource to assigna data property 468 to the access request based on the context of therequest. For example, a device making a request may have limitedauthorization (such as a time limit) to access the result of thesynthesis routine and the data property is an identifier that representsthe access limitation. For another example, the application requestingexecution of a synthesis routine may have authorization to execute thesynthesis routine with a limitation of only using anonymized data toperform the synthesis routine as represented by a data propertyassociated with the analysis request and/or the source of the request.For yet another example, the authorization engine 404 may identify dataof the result of the perform routine request 466 to be stored at thelocal compute resource and the identified data may be associated withthe data property 468 to limit retrieval by compute devices (e.g.,authorize some device to the raw version of the result and authorizeother devices to the anonymized version of the result).

The analysis engine 410 may include program instructions (e.g., anidentification module 448, a gather module 450, a routine module 452,and an anonymizer module 454) to facilitate management of the localcompute resources. For example, the analysis engine 410 may invokeprogram instructions to identify and select a synthesis routine from alist of available synthesis routines based on an analysis request,determine an authorization level 470 of the analysis request, and assignaccess rights to the synthesis routine of the analysis request and/orthe result of the synthesis routine request based on a comparison of thedata property of the synthesis routine and an access term associatedwith the authorization level associated with the analysis request. Anauthorization level is associated with a degree of permissions to accessthe local compute resources and may be determined based on the type ofrequest, the source of the request, the destination of the request, theexpected results of the request, the proximity threshold, access termsof agreements for services offerable by the host device, and/or othersecurity factors.

The identification module 448 represents program instructions that whenexecuted by a processor resource cause the processor resource toidentify a synthesis routine of the analysis request (e.g., select thesynthesis routine that performs the analysis request according theoperation conditions of the analysis request). For example, dataproperties of the synthesis routines may be compared to the dataproperty of the request and a synthesis routine with a matching dataproperty may be selected by an analysis engine 410 when executing theidentification module 448.

The gather module 450 represents program instructions that when executedby a processor resource cause the processor resource to gather dataassociated with the analysis request. For example, the gather module 450may be executed to cause the analysis engine 410 to compare a dataproperty to data on a local compute resource and an access term 472 toidentify and retrieve the data to be used with the synthesis routine.For another example, the gather module 450 may be executed to cause theanalysis engine 410 to gather the operation conditions (e.g.,parameters) for the synthesis routine as preparation to store asynthesis routine for later retrieval by the system.

The routine module 452 represents program instructions that whenexecuted by a processor resource cause the processor resource to performthe analysis request, such as execute the synthesis routine andassistive operations to complete performance of the synthesis routine.For example, the analysis request may be associated with a data property468 and the source of the analysis request is associated with anauthorization level based on an access term (or terms) 472, the dataproperty 468 is compared to the permissions associated with theauthorization level, and if the data property 468 satisfies (e.g., iswithin the permitted operations) then the analysis engine 410 allows thesynthesis routine to be added to the list of synthesis routines orperformed as indicated by the analysis request (e.g., 464 or 466).

The anonymizer module 454 represents program instructions that whenexecuted by a processor resource cause the processor resource to provideanonymous data to a destination. For example, execution of theanonymizer module 454 may retrieve anonymous data in lieu of raw sensordata when the authorization level does not satisfy the access term 472or may convert the raw sensor data to an anonymized version prior tosending the data to the destination.

In response to execution of the analysis engine 410, a message may besent in response to a resource request received by the system. Forexample, a confirmation message 474 may be sent to a source of the addroutine request 464. For another example, a communication including theresult data 476 of the performed synthesis routine may be sent to asource of the perform routine request 466.

FIGS. 5 and 6 are flow diagrams depicting example methods for providingaccess to local compute resources. Referring to FIG. 5, example methodsfor providing access to a result of a synthesis routine may generallycomprise determining a list of a plurality of synthesis routinesavailable to a remote device, establishing access terms for a remotedevice, providing an infrastructure to the remote device to access asynthesis routine in accordance with the access terms, selecting asynthesis routine of the plurality of synthesis routines based on sourceinput, identifying raw data on a local compute resource of the hostdevice that is compatible with the selected synthesis routine, andperforming the selected synthesis routine using the raw data. Theoperations discussed with respect to FIG. 5 are performable by thesystem comprising an authorization engine, an interface engine, and ananalysis engine, such as system 100 of FIG. 1.

At block 502, a list of a plurality of synthesis routines available to aremote device are determined. For example, an interface engine mayidentify the compute devices connected to a host device. A computedevice, such as a host device, determines the synthesis routines thatare available to use by a remote device (e.g., based on location of theremote device or terms of a service subscription) and compiles a list ofthe available synthesis routines, such as by executing an interfaceengine and/or authorization engine. For example, a data store containingservices that are identified as available may be broadcasted to deviceswithin a proximity threshold of the host device (e.g., via a personalarea network broadcast).

At block 504, access terms for the remote device are established basedon a proximity of the remote device and a data property associated withthe remote device. For example, an analysis engine, such as analysisengine 110, may identify permissions authorized to be performed by anapplication that allow storage and/or retrieval of a synthesis routineand associate a data property that represents the level of access withthe remote device. For another example, the remote device may revoke allaccess permission when the remote device goes beyond the proximitythreshold, In this manner, devices associable with the network withinthe proximity threshold may, for example, access the synthesis routinesaccording to dynamic and adaptive security protocols.

At block 506, an infrastructure is provided to the remote device. Forexample, an interface engine, such as interface engine 106 of FIG. 1,may provide the infrastructure identified by the analysis engine to adestination of the analysis request. The infrastructure provided atblock 506 provides access to the plurality of synthesis routines inaccordance with the access terms. For example, a personal area networkpairing with limitations made by the access terms may be initiated andallow access to the synthesis routines associated with the analysisrequest. For another example, a PAAS container may be provided with theaccess terms implemented as providing or not providing particularinfrastructure to enable capabilities associated with the access terms.

At block 508, a synthesis routine is selected. For example, add routinerequests, modify routine requests, and remove routine requests aremanaged by a host compute device, such as via an analysis engine, todetermine the list of available synthesis routines and a synthesisroutine of the list of the plurality of synthesis routines is selectedbased on the compatibility of the selected synthesis routine with theanalysis request. The compute device accounts for authorization level ofthe requests (e.g., access terms agreed to by the source of the request)and the type of request (e.g., the type of resources used by thesynthesis routine being requested, the amount of the resource beingrequested, etc.) when determining how to allocate resources andotherwise perform the operations of the analysis request. Input may bereceived via an application or display interface, such as a userselecting an entry from a list of entries displayed on a control panel.

At block 510, raw data compatible with the synthesis routine selected atblock 508 is identified on a local compute resource. For example, aparameter of a synthesis routine may be used by an analysis engine toidentify the type of data used by the synthesis routine and thatparameter may be compared to the data types of data in a resource grouphosted by the host device. In accordance with an authorization leveland/or access terms, raw data may be provided to a synthesis routine oranonymized data may be provided to a synthesis routine. Anonymous data,by definition, examples data with reduced information, thus, a synthesisroutine that uses raw data may have more accurate results in comparisonto a synthesis routine that uses anonymized data. At block 512, theselected synthesis routine is performed based on the raw data identifiedat block 510. In this manner, the most accurate result of the synthesisroutine may be accomplished and may be kept private when performedwithin a local environment.

A host device performing the operations discussed with respect to FIG. 5may manage a pool of compute resources and offer the data in the pool tosynthesis routines for analysis requests made by nearby devices (e.g.,devices within a proximity threshold) in accordance with agreements toprovide the analysis services. In this manner, the host device maymanage access to results of synthesis routines to an IoT device bymanaging access in accordance with access terms associated with a leaseagreement and by proximity to the host device. One example benefit ofhosting local compute resources allows for raw data (e.g., non-anonymousdata) to be accessible by synthesis routines requested by devices toproduce a smart local environment that is able to exchange information,such as forward projections, between trusted devices without exposingprivate data (e.g., non-anonymous data) to access from third partiesbeyond the proximity threshold.

FIG. 6 includes blocks similar to blocks of FIG. 5 and providesadditional blocks and details. In particular, FIG. 6 depicts additionalblocks and details generally regarding managing the list of synthesisroutines, publishing the list of local compute resources, identifyingthe location of the remote device, determining authorization, anddetermining the class of result in response to executing the synthesisroutine. Blocks 602, 606, 608, 610, 612, and 614 are the similar toblocks 502, 504, 506, 508, 510, and 512 of FIG. 5 and, for brevity,their respective descriptions are not repeated in their entirety.

At block 602, a list of synthesis routines may be identified asavailable to a remote device. The list of synthesis routines may bemanaged by an interface engine, such as interface engine 106 of FIG. 1.Synthesis routines may be added to the list of synthesis routines atblock 630. For example, a synthesis routine may be added to the list ofsynthesis routines by an interface engine when an add routine request isreceived by the host device with a synthesis routine data structure. Inthat example, the add routine request is parsed by an interface engine(e.g., the storage variables of the synthesis routine data structure areaccessed) is at block 632 to identify an operation, a class of datauseable by the operation, and an anonymity threshold condition (e.g., toidentify when raw data is allowed to be used with the operation or whenthe anonymous data is to be used with the operation). At block 634, asynthesis routine may be removed from the list of synthesis routines.For example, an authorization engine may identify that a synthesisroutine is associated with an authorization level above theauthorization level of the source of the request and the synthesisroutine may not appear as available to the source, For another example,a synthesis routine from the list of the plurality of synthesis routineswhen the remote device requesting the analysis request is outside theproximity range.

At block 604, the list of synthesis routines determined (e.g.,identified as available) at block 602 are published. The list ofsynthesis routines may be published passively (e.g., to a web page or apublic interface destination) or actively (e.g., send communication to amaintained list of devices in a network). For example, the list ofsynthesis routines may be published via an interface engine by sendingscheduled broadcasts to devices within wireless range of the hostdevice. For another example, a device may receive the list of synthesisroutines in response establishing a connection to an office network.

At block 618, a determination as to whether the remote device isauthorized to access raw data is made based on a location of the remotedevice and an access term associated with the remote device. Forexample, the location of the device identified at block 616 is comparedby an authorization engine to the proximity threshold and the accessterms are compared to data property of the analysis request to determinewhether the analysis request is authorized to access raw data to performthe synthesis routine. At block 620, a determination as to whether thedata is to be provided to the synthesis routine is made by an analysisengine based on the determination at block 618. The location of theremote device is compared to the proximity threshold at block 622. Ifthe remote device is outside the proximity range of the host device, ananonymous result is selected to be provided (e.g., stored or sent) atblock 624. If the remote device is within the proximity range, apersonal identifiable result is selected to be provided (e.g., stored orsent) at block 626.

Although the flow diagrams of FIGS. 4-6 illustrate specific orders ofexecution, the order of execution may differ from that which isillustrated. For example, the order of execution of the blocks may bescrambled relative to the order shown. Also, the blocks shown insuccession may be executed concurrently or with partial concurrence. Allsuch variations are within the scope of the present description.

All of the features disclosed in this specification (including anyaccompanying claims, abstract and drawings), and/or all of the elementsof any method or process so disclosed, may be combined in anycombination, except combinations where at least some of such featuresand/or elements are mutually exclusive.

The present description has been shown and described with reference tothe foregoing examples. It is understood, however, that other forms,details, and examples may be made without departing from the spirit andscope of the following claims. The use of the words “first,” “second,”or related terms in the claims are not used to limit the claim elementsto an order or location, but are merely used to distinguish separateclaim elements.

What is claimed is:
 1. A method comprising: identifying, via a processorresource, a class of devices and a type of compute resource associatedwith a request; determining, based on the class of devices, a collectionof compute resources distributed across a number of devices having thetype of compute resource; determining, via the processor resource, aclass of data based on a data property of the request; and causing, viathe processor resource, a synthesis routine to perform via the number ofdevices corresponding to the class of devices using data correspondingto the class of data.
 2. The method of claim 1, comprising: providingaccess to a local compute resource to the number of devices having theclass of devices associated with the request.
 3. The method of claim 1,comprising: determining the request utilizes generation of a groupevent; generating a number of dusters for the request; the dustersassociated with the type of compute resource; and sending a portion ofthe request to each duster to perform the portion with the type ofcompute resource.
 4. The method of claim 1, comprising: establishing atime limit to use the type of compute resource.
 5. The method of claim1, comprising: establishing a time restriction of a network resource, anumber of destinations to be restricted from receiving a result of anoperation of the synthesis routine outside of the time restriction. 6.The method of claim 1, comprising prioritizing analysis requests basedon a demand level identified by monitored analysis requests; andprioritizing sending a result of an operation of the synthesis routinefrom the number of devices to a remote memory storage location.
 7. Themethod of claim 1, wherein the class of devices represents a combinationof processor resources, memory resources, and network resources.
 8. Adevice comprising: a processor resource; and a memory resource, thememory resources having instructions stored thereon that when executedby the processor resource cause the device to: publish a list ofroutines to a device within a boundary of a local environment, the listof routines usable with a local compute resource within the localenvironment; and in response to selection of a first routine of the listof routines: identify a local compute resource within the localenvironment with a data property associated with the first routine; andperform the first routine using the local compute resource in responseto a determination that a destination to receive a result of the firstroutine is within the local environment; or send the first routine to anumber of devices having a compute resource corresponding to the dataproperty associated with the first routine, the data propertyrepresenting a class of devices.
 9. The device of claim 8, wherein theinstructions, when executed by the processor resource, further cause thedevice to: provide access to analysis capabilities associated with thedevice class; and provide access to compute resources associated withthe device class.
 10. The device of claim 8, wherein: the data propertyis a time restriction to utilize the local compute resource.
 11. Thedevice of claim 10, wherein: the local compute resource is a networkresource, and the instructions, when executed by the processor resource,further cause the device to: generate a result of the first routine; andcause transfer of the result of the first routine within the timerestriction corresponding to use of the network resource.
 12. The deviceof claim 8, wherein: the first routine is sent to the number of devicesbased on match between a class of devices of the number of devices and aclass of devices corresponding to a type of compute resource associatedwith the first routine.
 13. The device of claim 8, wherein theinstructions, when executed by the processor resource, further cause thedevice to: prioritize a performance of the first routine based on ademand level identified by monitored requests; and prioritizecommunication of a result of first routine based on a demand level andan operation restriction defined by a time-based policy.
 14. Anon-transitory machine-readable medium comprising a set of instructionsexecutable by a processor resource to: identify the type of data of arequest; determine a type of compute resource to use with an operationof the request corresponding the type of data of the request; identify adevice with the type of compute resource determined for the operation ofthe request; cause the identified device to perform the operation of therequest within a bounds of a policy; and prioritize communication of aresult of the operation to a remote storage location, the prioritizationdetermined based on a demand level and an operation restriction of acompute resource as defined by the policy.
 15. The non-transitorymachine-readable medium of claim 14, wherein the policy is a time-basedpolicy or a utilization-based policy associated with the type of computeresource associated with the request.
 16. The non-transitorymachine-readable medium of claim 14, wherein the set of instructionscause the processor resource to: provide a number of devices permissionsto a local compute resource, the number of devices each being from aclass of devices associated with the request.
 17. The non-transitorymachine-readable medium of claim 14, wherein the set of instructionscause the processor resource to: provide a number of devices access to alocal compute resource based on a type of analysis associated with therequest.
 18. The non-transitory machine-readable medium of claim 14,wherein the set of instructions cause the processor resource to:determine the request includes generation of a group event; generate anumber of dusters for the request, the dusters associated with the typeof compute resource; and send out a portion of the request to eachcluster to perform the portion with a compute resource of the type ofcompute resource associated with the request.
 19. The non-transitorymachine-readable medium of claim 14, wherein the set of instructionscause the processor resource to: send a first routine of the request toa number of devices based on match between a class of devices of thenumber of devices and a class of devices corresponding to the type ofcompute resource associated with the first routine.
 20. Thenon-transitory machine-readable medium of claim 14, wherein the set ofinstructions cause the processor resource to: in response to adetermination that a local compute resource is sufficient for therequest: identify a local compute resource within a local environmentwith a data property associated with the first routine; perform thefirst routine using the local compute resource in response to adetermination that a destination to receive a result of the firstroutine is within the local environment; or in response to adetermination that a local compute resource is insufficient for therequest: send a first routine to a number of devices having the type ofcompute resource with associated with the first routine based on a dataproperty associated with the request; prioritize a performance of thefirst routine via the number of devices based on a demand levelidentified by monitored requests; and cause allocation of network timefor the number of devices to send data to a cloud service based on thetype of data of the request, the policy being a time-based policyassociated with a network resource and the cloud service being theremote storage location.